
/**
 * mockjs 文档
 * http://mockjs.com/examples.html#String
 *
 * 数据占位符定义 Random
 * http://mockjs.com/examples.html#Basic
 */
import Mock from "mockjs"
const { Random } = Mock

class result {
    constructor(data) {
        this.resultCode = 200
        this.message = 'mock 成功'
        this.data = data
    }
}

/**
 * 闭包结合Object创建命名空间
 * 注意Vue 页面使用方式：
 *
    import mockFun from "@/mock/fun"
    const {mockList,...} = mockFun.qualityManage.mockListWrap() // 涉及闭包 所以需要先调用外层函数一次
 */
 const muduleName = 'qualityManage'
 const NameSpace = NameSpace || {};
 NameSpace[muduleName] = (function () {
     //待返回的公有对象
     var self = {};
     //私有变量或方法
     // var name = 'world';
     //公有方法或变量 (通过 mockFunWrap方法 导出所有mock方法)
     self.mockFunWrap = function () {
        return {
            mockList, // mockList:mockList 简写
            mockDetails
            // ... 添加需要导出的mock方法
         }
     };
     //返回的公有对象
     return self;
 }());

/**
 * 实际mock方法合集 >>>>>>>>>>>>>>
 */

/**
 * mock 质量管理反馈、审核列表
 * @returns {Object} Promise
 */
const mockList = () => {
    try {
        const id = Random.id();
        const name = Random.cname();
        const date = Random.datetime();
        const mockData = Mock.mock({
            'rows|10': [{
                reportId: `Id${id}`, //质量报告id
                reportNo: `No${id}`, //质量报告单号
                reportStatus: () => Random.integer(50031001, 50031005), //单据状态
                caseMain: '易生锈', //主题
                vin: `VIN${id}`,// vin
                licensePlate: '渝AH2W73', //车牌
                engineCode: `No${id}`, //电机号
                modelName: '星越', //车型
                reporter: name, //报告人
                applyAt: date //报告日期
            }]
        })
        /**
         * 返回一个Promise对象
         *     resolve 对应 .then((res)=>{...})
         *     reject  对应 .catch((err)=>{...})
         */
        return Promise.resolve(new result(mockData.rows))
    } catch (err) {
        console.log(err)
    }
}

/**
 * mock 质量管理反馈、审核详情
 * @returns {Object} Promise
 */
const mockDetails = (params) => {
    try {
        console.log(9,'接收到的入参=>',params)
        const id = Random.id();
        const name = Random.cname();
        const date = Random.datetime();
        const cparagraph = Random.cparagraph();
        const mockData = Mock.mock({
                reportId: `Id${id}`, //质量报告id
                reportNo: `No${id}`, //质量报告单号
                dealerCode: `dealerCode${id}`,//服务站代码
                dealerName:'服务站名称', //服务站名称
                reportStatus: () => Random.integer(50031001, 50031005), //单据状态
                caseMain: '易生锈', //主题
                vin: `VIN${id}`,// vin
                licensePlate: '渝AH2W73', //车牌
                engineCode: `No${id}`, //电机号
                reporter: name, //报告人
                applyAt: date, //报告日期
                'phone':15213080721,//联系方式
                'driveMile':10000,//行驶里程
                'modelCode':`model${id}`,//车型编码
                modelName: '星越', //车型
                'saleDateStr':date,//销售日期
                'prodDateStr':date,//生产日期
                'serviceBeginDateStr':date,//维修日期
                'applyAtStr':date,//申请时间
                'cmsClaimInfo':cparagraph,//故障描述
                'complainInfo':cparagraph,//客户抱怨描述
                'faultType': () => Random.integer(10031001, 10031005),//故障类别
                'driveState':() => Random.integer(20031001, 20031005),//驾驶工况
                'environmentState':() => Random.integer(30031001, 30031005),//环境工况
                'faultRate':() => Random.integer(40031001, 40031005),//发生频率
                'isReproduce':1001,//是否可重现'://
                'isFirst':1001,//是否首发
                'is_solvable':1001,//是否可解决
                'partCode':`code${id}`,//主因零部件代码
                'partName':'零件名',//零件名称
                'faultPartCode':`gz${id}`,//故障件代码
                'faultPartName':'故障件名称',//故障件名称
                'faultMode':() => Random.integer(55771001, 55771019),//故障模式
                'faultDuty':'故障责任',//故障责任
                'supportCode':'配套厂名称',//配套厂名称
                'supportName':'配套厂代码',//配套厂代码
                'frName':'故障原因',//故障原因
                'dealMeasur':'处理方案',//处理方案
                'cmsClaimProcess':'维修方案',//维修方案
                'cmsClaimResult':'维修结果',//维修结果
                'satisfiedInfo':'客户满意情况',//客户满意情况
                'dealerOpinion':'服务站意见',//服务站意见
                'oldePart':'旧件实物',//旧件实物
                'vehicleState':'车辆状况',//车辆状况
                'remarks':'备注备注备注备注备注'//备注
        })
        /**
         * 返回一个Promise对象
         *     resolve 对应 .then((res)=>{...})
         *     reject  对应 .catch((err)=>{...})
         */
        return Promise.resolve(new result(mockData))
    } catch (err) {
        console.log(err)
    }
}

/**
 * 实际mock方法合集 <<<<<<<<<<<<<<<<<<
 */

export default NameSpace;
